package com.xindaoapp.happypet.protocol;

import java.util.List;

import android.app.Activity;

import com.xindaoapp.happypet.bean.PostInfo3;
import com.xindaoapp.happypet.utils.KeyValuePair;

/**
 * 发帖队列
 * 
 * @author chenghao
 * 
 */
public interface PostQueue {

    public boolean isRunning();

    /**
     * 在发帖队列添加监听器
     * 
     * @param iUploadProgress
     */
    public void addListener(IUploadProgress iUploadProgress);

    /**
     * 开始发帖
     * 
     * @param iUploadProgress 发帖进度监听器
     */
    public void start(IUploadProgress iUploadProgress);

    /**
     * indexposts=fid参数数值 {"fid":"232","tagidlist":"2323,3434,45,45,45"}
     * 
     * @param fid
     */
    public void setFid(String fid, String tags, String shaituid);

    public void setFid(String fid, String tags, String shaituid, String mapx, String mapy,
            String location, String locationname, String city);

    /**
     * 获取当前发帖的信息
     * 
     * @return
     */
    public PostInfo3 getPostInfo();

    /**
     * 获取正在发帖的信息
     * 
     * @return
     */
    public KeyValuePair<String, Integer> getSendingInfo();

    /**
     * 上传文件图片（加入队列，调用发正文方法的时候才会正在的发帖）
     * 
     * @param infos
     */
    public void addQueue(List<KeyValuePair<String, Integer>> infos);

    /**
     * 上传视频文件（加入队列，调用发正文方法的时候才会正在的发帖）
     * 
     * @param info
     * @param coverFilePath
     */
    public void addQueue(KeyValuePair<String, Integer> info, String coverFilePath);

    /**
     * 发帖，发正文（加入队列，发正文，真正的发帖方法）
     * 
     * @param title
     * @param content
     * @param list（最终上传的图片视频列表，用于过滤已经删除的）
     */
    public void addQueue(String title, String content, List<KeyValuePair<String, Integer>> infos,
            boolean isHaveVideo, String webVideoData, int isSendShare);

    /**
     * 未点击发帖，直接保存到草稿箱
     * 
     * @param title
     * @param content
     * @param infos
     * @param isHaveVideo
     * @param webVideoData
     * @param isSendShare
     */
    public void addQueueToDraft(String title, String content,
            List<KeyValuePair<String, Integer>> infos, boolean isHaveVideo, String webVideoData,
            int isSendShare);

    /**
     * 
     * 添加到草稿箱
     * 
     * @param title
     * @param content
     * @param infos
     * @param isHaveVideo
     * @param webVideoData
     * @param isSendShare
     */
    public void saveToDraft();

    /**
     * 回复，回复正文（加入队列，发正文，真正的发帖方法）
     * 
     * @param content
     * @param tid
     * @param pid
     * @param list （最终上传的图片视频列表，用于过滤已经删除的）
     */
    public void addQueue(String content, String tid, String pid,
            List<KeyValuePair<String, Integer>> infos, String webVideoData);

    public void finishActivity(Activity activity);
}
